// 1.导入express
const express = require('express')
// 引入JWT
var jwt = require('jsonwebtoken')
// 导入jwt的配置
const { TOKEN_KEY, TIME } = require('../JWT/config')
// 2.创建路由对象
const router = express.Router()

// 导出数据库相关配置
const { getOne, exec } = require('../db')

/* 用户登录
 * POST /login
 */
router.post('/', async (req, res, next) => {
  const { user_name, user_password } = req.body
  let sql = `select * from gg_user where user_name='${user_name}' and user_password='${user_password}'`
  const data = await getOne(sql)
  if (data) {
    // 修改用户登录状态为在线
    sql = `UPDATE gg_user SET user_onlinestatus= 1 WHERE user_id=${data.user_id}`
    //创建token   jwt.sign方法第一个参数可以存储信息 ,第二个参数存储token密钥 第三个是token过期时间
    let token = jwt.sign({ user_name, user_password }, TOKEN_KEY, {
      expiresIn: TIME,
    })
    await exec(sql)
    res.send({
      code: 0,
      message: '登录成功',
      result: { data, token },
    })
  } else {
    res.send({
      code: 1,
      message: '用户名或密码错误',
    })
  }
})

// 4. 导出路由对象
module.exports = router
